<?php
session_start(); // 开启session验证
// 初始化
$width=110;
$height=30;
$image = imagecreatetruecolor($width,$height); // 创建图片
$bgcolor=imagecolorallocate($image,255,255,255); // 分配颜色
imagefill($image,0,0,$bgcolor); // 填充图片
$captch_code="";
// 生成验证码
for($i=0;$i<4;$i++){
    $fontsize=20;
    $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
    $dict="QWERTYUPASDFGHJKZXCVBNMqwertyupasdfghjkzxcvbnm0123456789";
    $fontcontent=substr($dict,rand(0,strlen($dict)),1);
    $x=$i*$width/4+rand(5,10);
    $y=rand(20,25);
    $font = 'arial.ttf';
    imagettftext($image, $fontsize, 0, $x,$y, $fontcolor, $font, $fontcontent);
    $captch_code.=$fontcontent;
}
$_SESSION['code']=$captch_code; // 验证码保存到session

// 图片添加雪花
for($i=1;$i<100;$i++){
    $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
    imagesetpixel($image,rand(1,$width-1),rand(1,$height-1),$pointcolor);
}
// 图片添加横线
for($i=1;$i<5;$i++){
    $linecolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
    imagesetthickness($image,2); // 设置image中所有线的宽度
    imageline($image,rand(1,$width-1),rand(1,$height-1),rand(1,$width-1),rand(1,$height-1),$linecolor);
}
// 图片显示
header("content-type:image/png"); // 约定格式
imagepng($image); // png格式输出到浏览器
imagedestroy($image); // 销毁